package vkutill
{
	import flash.display.DisplayObject;
	import flash.display.Loader;
	import flash.events.EventDispatcher;
	import flash.net.URLRequest;
	import vk.APIConnection;
	import vk.events.CustomEvent;
	
	
	public class VKUserData extends EventDispatcher
	{
		public var initComplete:Boolean = false;
		
		public var uid:String;
		public var firstName:String;
		public var lastName:String;
		public var nickName:String;
		public var sex:String;
		public var country:String;
		public var city:String;
		
		public var urlPhoto:String;
		public var urlPhotoMedium:String;
		public var urlPhotoBig:String;
		
		public var photo:DisplayObject;
		public var photoMedium:DisplayObject;
		public var photoBig:DisplayObject;
		
		public var Groups:Array;
		
		private var VK:APIConnection;
				
		/* Конструктор принимает набор параметров для инициализации соединения, 
		 * а так же метод, в который отправится */
		public function VKUserData(flashVars:Object) 
		{
			VK = new APIConnection(flashVars);
			/* Вызываем метод getProfiles, возвращающий данные пользователя с uids */
			var loadFields:Array = ["photo", "photo_medium", "photo_big", "nickname", "sex", "city", "country"];
			trace("loadFields: "+loadFields.toString());
			VK.api("getProfiles", { uids:flashVars["viewer_id"], fields:loadFields.toString() }, getUserData_Complete, getUserData_Fail);
		}
		
		/* Обработка загруженных данных */
		private function getUserData_Complete(data:Object):void
		{
			var userInfo:Object = data;
			uid = userInfo["uid"];
			firstName = userInfo["first_name"];
			lastName = userInfo["last_name"];
			nickName = userInfo["nickname"];
			sex = userInfo["sex"];
			country = userInfo["country"];
			city = userInfo["city"];
			
			urlPhoto = userInfo["photo"];
			urlPhotoMedium = userInfo["photo_medium"];
			urlPhotoBig = userInfo["photo_big"];
			
			var photoLoader:Loader = new Loader();
			photoLoader.load(new URLRequest(urlPhoto));
			photo = photoLoader.content;
			
			//trace(data[0]["photo_big"]); // photo_big
			//var ph:DisplayObject = vkWr.getUserPhoto(data[0]["photo_big"]); // photo_big
			//ph.x = 10;
			//ph.y = 70;
			//this.addChild(ph);
			
			/* Выброс события "Данные пользователя загружены"*/
			initComplete = true;
			var newEv:VKUserCustomEvent  = new VKUserCustomEvent(VKUserCustomEvent.UserInfoLoaded);
			newEv.vkUserInfo = this;
			dispatchEvent(newEv);
		}
		
		/* Обработка ошибки загрузки данных */
		private function getUserData_Fail(data:Object):void
		{
		}
		
		/* Загрузка фото по URL. Лучше вынести в отдельный класс, ибо ещё понадобится */
		//private function hanPhotoLoader_Complete():void
		//{
			//
		//}
		//private function hanPhotoLoader_Fail():void
		//{
			//
		//}
		
	}

}